package com.yuw.tcpnetwork;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerThread implements Runnable {
    @Override
    public void run() {
        try {
            // 创建一个 ServerSocket ，并指定端口号，注意：客户端的端口号要和服务器端的一致
            ServerSocket serverSorcket = new ServerSocket(9090);
            for (; ; ) {
                // 创建一个用于接待 客户端的 socket 对象
                Socket socket = serverSorcket.accept();
                /////////////////////接收客户端的消息////////////////////////
                // 获取服务器端的socket的输入流对象
                BufferedReader bufferedReader = new BufferedReader(
                        new InputStreamReader(socket.getInputStream()));
                // 读取网络上的输入流中数据流
                String strInMsg = bufferedReader.readLine();
                // 进行业务逻辑处理
                System.out.println("服务器：" + strInMsg);

                /////////////////////向客户端发送消息//////////////////////////
                // 获取服务器端的Socket的输出流
                PrintWriter printWriter = new PrintWriter(socket.getOutputStream());
                // 服务器发送的消息
                String strServerMsg = "hello,client ，I am 服务器 from nuc ";
                // 服务器往客户端发送消息
                printWriter.println(strServerMsg);
                System.out.println("服务器：" + strServerMsg);
                // 清空发送缓存
                printWriter.flush();

                // 中间休眠1s
                Thread.sleep(1000);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
